const { resolve } = require('path')

const { jgcl } = require(resolve(__dirname, '../../utils/utils'))

const AboutSchema = require(resolve(__dirname, '../../database/dbModule/about'))

// 查询关于信息
const aboutFind = async (ctx) => {
  try {
    const findRes = await AboutSchema.find({ isDel: false })

    if (findRes.length <= 0) {
      jgcl(ctx, 2015, '数据为空')
    } else {
      jgcl(ctx, 200, '查询成功!', findRes)

    }
  } catch (err) {
    jgcl(ctx, 2014, '查询失败!', JSON.stringify(err))
  }
}

// 新增关于信息
const aboutAdd = async (ctx) => {
  try {
    const { title, content, isDel = false } = ctx.request.body

    const findRes = await AboutSchema.findOne({ isDel: false, title })

    if (findRes === null) {
      const addRes = await AboutSchema.create({
        title,
        content,
        isDel
      })
      jgcl(ctx, 200, '添加成功!', addRes)
    } else {
      jgcl(ctx, 2010, '关于信息已存在!', title)
    }

  } catch (err) {
    jgcl(ctx, 2011, '添加失败!', err)
  }
}

// 修改关于信息
const aboutUp = async (ctx) => {
  try {
    const { id, title, content } = ctx.request.body

    const findRes = await AboutSchema.findOne({ isDel: false, _id: id })

    if (findRes === null) {
      jgcl(ctx, 200, '关于信息不存在!', title)
    } else {
      const upRes = await AboutSchema.updateOne(
        { isDel: false, _id: id },
        { title, content }
      )
      if (upRes.modifiedCount > 0) {
        jgcl(ctx, 200, '修改成功!')
      } else {
        jgcl(ctx, 2013, '修改失败!')
      }
    }

  } catch (err) {
    jgcl(ctx, 2013, '修改失败!', err)
  }
}

// 删除关于信息
const aboutDel = async (ctx) => {
  try {
    const { id } = ctx.request.body

    const findRes = await AboutSchema.findOne({ isDel: false, _id: id })

    if (findRes === null) {
      jgcl(ctx, 200, '关于信息不存在!', title)
    } else {
      const upRes = await AboutSchema.updateOne(
        { isDel: false, _id: id },
        { isDel: true }
      )
      if (upRes.modifiedCount > 0) {
        jgcl(ctx, 200, '删除成功!')
      } else {
        jgcl(ctx, 2016, '删除失败!')
      }
    }

  } catch (err) {
    jgcl(ctx, 2016, '删除失败!', err)
  }
}

module.exports = {
  aboutAdd,
  aboutFind,
  aboutUp,
  aboutDel
}